// 引入题目集合构造函数
const { Article } = require("../../../model/article");
// 引入用户集合构造函数
const { User } = require("../../../model/user");

module.exports = async (req, res) => {
  // 获取id参数
  const { id } = req.params;

  // 1. 查询出所有学生
  let students = await User.find({ role: "student" }).populate("title1");
  console.log(students)
  // 2. 过滤出选择了该题目的学生
  students = students.filter(item => {
    if (item.title1) {
      return item.title1._id == id;
    }
  });
  console.log(students)
  // 3. 如果过滤出来的学生数量大于0，更新这些学生的志愿
  if (students.length > 0) {
    students.forEach(async item => {
      await User.updateOne({ _id: item._id }, { title1: null, selected: false, selectTime: null });
    });
  }

  // 4. 最后删除数据库中的该题目数据
  const result = await Article.findByIdAndDelete({ _id: id });

  // 如果删除成功
  if (result) {
    res.send({
      meta: {
        msg: "删除成功",
        status: 200
      }
    });
  } else {
    res.send({
      meta: {
        msg: "删除失败",
        status: 400
      }
    });
  }
};
